home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / BOCOLE.PAK / MAKE.INC < prev    next >
Text File  |  1997-05-06  |  5KB  |  216 lines

  1. #-----------------------------------------------------------------------------
  2. # ObjectComponents - 
  3. # Copyright (c) 1991, 1996 by Borland International
  4. #
  5. # MAKEFILE for ObjectComponents BOcOle Dlls
  6. #
  7. #  BCROOT  = Borland compiler root directory, parent of BIN, LIB, INCLUDE
  8. #  APP     = name of application, used for .DLL
  9. #  DEFNAME = name of .def, .res file
  10. #  OBJS    = list of object files for link, each with .obj extension
  11. #  LIBS    = list of library files to be searched in addition to standard ones
  12. #  OBJDIR  = name of build directory, child of source directory
  13. #  DLL     = defined if making a DLL, not defined for EXE
  14. #------------------------------------------------------------------------
  15.  
  16. #MAKEINC = ..\make.inc
  17.  
  18. .SUFFIXES: .RC .OBJ .DEF .CPP .C .ASM
  19.  
  20. !if !$d(TARGET_EXT)
  21. !if $d(DLL)
  22. TARGET_EXT = DLL
  23. WSWITCH    = DE
  24. !else
  25. TARGET_EXT = EXE
  26. WSWITCH    = S
  27. !endif
  28. !endif
  29.  
  30. !ifdef DIAGS
  31. DEBUG = 1
  32. TRACE = 1
  33. WARN  = 1
  34. !endif
  35.  
  36. !if !$d(BCROOT)
  37.   BCROOT = $(MAKEDIR)\..   # default bcroot to parent of dir where make lives
  38. !endif
  39.  
  40. !ifndef WIN16
  41. OLEINC    = $(SRCDIR)\boleui32
  42. LIBPATH   = $(RELDIR);$(SRCDIR)\boleui32;$(BCROOT)\LIB
  43. INCLUDE   = $(BCROOT)\include\win32;$(BCROOT)\include
  44. CONFIG    = bcc32.cfg
  45. CPP       = @$(BCROOT)\BIN\BCC32
  46. LINK      = $(BCROOT)\BIN\TLINK32
  47. BRC       = $(BCROOT)\BIN\BRCC32
  48. !else
  49. #OLEINC    = $(SRCDIR)\..\boleui
  50. #OLELIB    = $(OLEROOT)\LIB;$(OLEROOT)\SAMP\LIB
  51. OLEINC    = $(SRCDIR)\boleui
  52. INCLUDE   = $(BCROOT)\include
  53. LIBPATH   = $(RELDIR);$(SRCDIR)\boleui;$(BCROOT)\LIB
  54. CONFIG    = turboc.cfg
  55. CPP       = @$(BCROOT)\BIN\BCC
  56. LINK      = $(BCROOT)\BIN\TLINK
  57. # //!BB Investigate screwed-up version resources
  58. # //!BRC       = $(BCROOT)\BIN\BRCC32 -31
  59. BRC       = $(BCROOT)\BIN\BRCC.EXE
  60. !endif
  61.  
  62. SRCDIR    = ..
  63. #RELDIR    = $(SRCDIR)\..\..\REL$(VERSION)
  64. RELDIR    = $(SRCDIR)\BIN
  65.  
  66. LIB       = $(BCROOT)\BIN\TLIB
  67. IMPLIB    = $(BCROOT)\BIN\IMPLIB
  68. ASM       = $(BCROOT)\BIN\TASM
  69. RC        = $(BRC)
  70.  
  71. !ifndef WIN16
  72. RLINK     = $(BCROOT)\BIN\BRC32
  73. !else
  74. RLINK     = $(BCROOT)\BIN\RLINK -fi
  75. !endif
  76. MAPSYM    = $(BCROOT)\BIN\TMAPSYM
  77. CPPFLAGS  = -DINC_OLE2 # -DLOOSE_HRESULT
  78.  
  79. !if $(DEBUG)
  80.   CPPFLAGS  = $(CPPFLAGS) -v -vi -D_DEBUG
  81. !else
  82. !ifndef WIN16                               # NDEBUG turns assert() off.
  83.   CPPFLAGS  = $(CPPFLAGS) -DNDEBUG -k-     # -k- optimized stack frames.
  84. !else                                      # -OW no inc/dec bp in
  85.   CPPFLAGS  = $(CPPFLAGS) -DNDEBUG -OW -k- #     prolog/epilog (16 bit only).
  86. !endif
  87. !endif
  88.  
  89. !ifdef TRACE
  90. CPPFLAGS  = $(CPPFLAGS) -D__TRACE
  91. !endif
  92. !ifdef WARN
  93. CPPFLAGS  = $(CPPFLAGS) -D__WARN
  94. !endif
  95.  
  96. !ifndef WIN16
  97.   CPPFLAGS  = $(CPPFLAGS) -DWIN32 -a4
  98. !ifndef UNICODE
  99.   CPPFLAGS =  $(CPPFLAGS) -DANSI
  100. !else
  101.   CPPFLAGS =  $(CPPFLAGS) -DUNICODE
  102. !endif
  103. !endif
  104.  
  105.   CPPFLAGS =  $(CPPFLAGS) -DMS_OLEUI_DEF
  106.  
  107. !ifndef WIN16
  108. LINKFLAGS   = -c -C -Tw -n -s c0w$(MODEL)+
  109. LINKFLAGSD  =       -Tpd -n -v -s c0d32+
  110. !else
  111. LINKFLAGS   = -c -C -Tw  -A=16 -n -s c0w$(MODEL)+
  112. LINKFLAGSD  = -c -C -Twd -A=16 -n -v -s c0dl+
  113. !endif
  114.  
  115. !ifndef WIN16
  116. LIBS      = $(LIBS) cw$(MODEL) import32
  117. !else
  118. LIBS      = $(LIBS) cw$(MODEL) mathw$(MODEL) import
  119. !endif
  120.  
  121. ALL: cdobj mdbin $(CONFIG) $(APP).$(TARGET_EXT) $(OTHER_TARGETS) cdsrc
  122.  
  123. cdobj:
  124.   @if not exist $(OBJDIR)\NUL md $(OBJDIR)
  125.   @cd $(OBJDIR)
  126.  
  127. mdbin:
  128.   @if not exist $(RELDIR)\NUL md $(RELDIR)
  129.  
  130. cdsrc:
  131.   @cd $(SRCDIR)
  132.  
  133. turboc.cfg: $(MAKEINC)
  134.   @echo  Building turboc.cfg
  135.   @copy &&|
  136.   $(CPPFLAGS)
  137.   -I$(SRCDIR);$(OLEINC);$(BCROOT)\include
  138. #  -I..\..\public;..\..\boleauto;..\..\bole;
  139.   -w-par -w-aus -w-ef
  140.   -c -2 -m$(MODEL) -i42 -d -W$(WSWITCH) -O -Obels -Z -RT- -x-
  141. |       turboc.cfg
  142.   @echo  Building tasm.cfg
  143.   @copy &&|
  144.   /mx/Zi
  145. |       tasm.cfg
  146.  
  147. bcc32.cfg: $(MAKEINC)
  148.   @echo  Building bcc32.cfg
  149.   @copy &&|
  150.   $(CPPFLAGS)
  151.   -I$(SRCDIR);$(SRCDIR)\..\ole2ui;$(OLEINC);$(BCROOT)\include\win32;$(BCROOT)\include
  152. #  -I..\..\public;..\..\bole
  153.   -w-par -w-aus -w-ef
  154.   -c -3 -i60 -d -W$(WSWITCH) -O -Obels -Z -RT- -x-
  155. |       bcc32.cfg
  156.  
  157. $(APP).dll: $(OBJS) $(SRCDIR)\$(DEFNAME).def $(SRCDIR)\$(DEFNAME).res $(RESOURCES)
  158.   $(LINK) $(LINKFLAGSD) @&&|
  159.   -L$(LIBPATH) +
  160.   $(OBJS)
  161.   $@
  162.   $(APP).map
  163.   $(LIBS)
  164.   $(SRCDIR)\$(DEFNAME).def
  165. !ifndef WIN16
  166.   $(SRCDIR)\$(DEFNAME).res $(RESOURCES)
  167. !endif
  168. |
  169. !ifdef WIN16
  170.   $(RLINK) $(SRCDIR)\$(DEFNAME).res $(RESOURCES) $@
  171. !endif
  172. #  copy $(APP).dll $(RELDIR)
  173.   $(IMPLIB) $(RELDIR)\$(FILENAME).lib $(APP).dll
  174.  
  175. $(APP).exe : $(OBJS) $(DEFNAME).def $(DEFNAME).res
  176.   $(LINK) $(LINKFLAGS) @<<$(APP).lnk
  177.   -L$(LIBPATH) +
  178.   $(OBJS:.obj =+)
  179.   $@
  180.   $(APP).map
  181.   $(LIBS)
  182.   $(DEFNAME).def
  183. <<KEEP
  184.   $(RLINK) $(DEFNAME).res $@
  185.   copy $(APP).exe $(RELDIR)
  186.  
  187. ## .DEF File Generation ##
  188.  
  189. $(DEFNAME).def : $(MAKEINC)
  190.   copy &&|
  191.   NAME       $(APP)
  192.   DESCRIPTION 'OLE 2.0 $(APP) Sample'
  193.   EXETYPE     WINDOWS
  194.   CODE        PRELOAD MOVEABLE
  195.   DATA        PRELOAD MOVEABLE MULTIPLE
  196.   HEAPSIZE    4096
  197.   STACKSIZE   8192
  198. |       $(DEFNAME).def
  199.  
  200. ## IMPLICIT RULES ##
  201.  
  202. {$(SRCDIR)}.c{}.obj:
  203.   $(CPP) -c $<
  204.  
  205. {$(SRCDIR)}.cpp{}.obj:
  206.   $(CPP) -c $<
  207.  
  208. {$(SRCDIR)}.asm{}.obj:
  209.   $(ASM) /l/ml/n/q/t $<,$@
  210.  
  211. {$(SRCDIR)}.def{}.lib:
  212.   $(IMPLIB) $@ $<
  213.  
  214. {$(SRCDIR)}.rc{}.res:
  215.   $(RC) $< -r -i$(SRCDIR);$(BCROOT)\include -fo$@
  216.